/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sys.donto.usuario;

import java.util.List;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import sys.donto.util.GenericDAO;
import sys.donto.util.HibernateUtil;

/**
 *
 * @author Cliente Master
 */
public class UsuarioDAO extends GenericDAO<Usuario>{
     public UsuarioDAO(){
        super(Usuario.class);
    }
     
     public boolean  autentica(Usuario usu){
         setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        Usuario usuario = (Usuario) getSessao().createCriteria(Usuario.class).
                add(Restrictions.eq("login", usu.getLogin())).
                add(Restrictions.eq("senha", usu.getSenha())).uniqueResult();
        
        getSessao().close();
        return usuario!=null;
     }
    
    public List <Usuario> pesquisaDescricao(String Login){
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        List <Usuario> usuarios = (List<Usuario>) getSessao().createCriteria(Usuario.class).
                add(Restrictions.ilike("login", Login, MatchMode.ANYWHERE)).
                addOrder(Order.asc("login")).list();
        
        getSessao().close();
        return usuarios;
        
    }
    
    public Usuario pesquisaId(int id){
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        Usuario usuario = (Usuario) getSessao().createCriteria(Usuario.class).
                add(Restrictions.eq("id", id)).uniqueResult();
        
        getSessao().close();
        return usuario;
    }
    
    public void salvar(Usuario u){
        if(u.getId()==0){
            adicionar(u);
        } else {
            atualizar(u);
        }
    }
    
}
